.TH DD 1
.SH NAME
dd \- convert and copy a file
.SH SYNOPSIS
.B dd
[
.I option value
]
\&...
.SH DESCRIPTION
.I Dd\^
copies the specified input file
to the specified output with
possible conversions.
The standard input and output are used by default.
The input and output block size may be
specified to take advantage of raw physical I/O.
The options are
.TF "quiet\ \ \fIn
.PD
.TP
.BI -if\  f
Open file
.I f
for input.
.TP
.BI -of\  f
Open file
.I f
for output.
.TP
.BI -ibs\  n\^
Set input block size to
.I n\^
bytes (default 512).
.TP
.BI -obs\  n\^
Set output block size (default 512).
.TP
.BI -bs\  n\^
Set both input and output block size,
superseding
.I ibs\^
and
.IR obs .
If no conversion is specified,
preserve the input block size instead of packing short blocks
into the output buffer.
This is particularly efficient since no in-core copy need be done.
.TP
.BI -cbs\  n\^
Set conversion buffer size.
.TP
.BI -skip\  n\^
Skip
.I n
input records before copying.
.TP
.BI -iseek\  n\^
Seek
.I n
records forward on input file
before copying.
.TP
.BI -files\  n\^
Catenate
.I n 
input files (useful only for magnetic tape or similar input device).
.TP
.BI -oseek\  n\^
Seek
.I n\^
records from beginning of output file before copying.
.TP
.BI -count\  n\^
Copy only
.I n
input records.
.TP
.BI -trunc\  n\^
By default,
.I dd
truncates the output file when it opens it;
.B -trunc
.B 0
opens it without truncation.
.TP
.BI -quiet\  n\^
By default,
.I dd
prints the number of blocks read and written
once it is finished.
.B -quiet
.B 1
silences this summary.
.HP
\fL-conv\ ascii\ \ \ \ \fRConvert
.SM EBCDIC
to
.SM ASCII.
.PD0
.RS "\w'\fLconv\ \fP'u"
.TP "\w'\fLunblock\ \ \fP'u"
.B ebcdic
Convert
.SM ASCII
to
.SM EBCDIC.
.TP
.B ibm
Like
.B ebcdic
but with a slightly different character map.
.TP
.B block
Convert variable length
.SM ASCII
records to fixed length.
.TP
.B unblock
Convert fixed length
.SM ASCII
records to variable length.
.TP
.B lcase
Map alphabetics to lower case.
.TP
.B ucase
Map alphabetics to upper case.
.TP
.B swab
Swap every pair of bytes.
.TP
.B noerror
Do not stop processing on an error.
.TP
.B sync
Pad every input record to
.I  ibs\^
bytes.
.RE
.PD
.PP
.fi
Where sizes are specified,
a number of bytes is expected.
A number may end with
.L k
or
.LR b
to specify multiplication by
1024 or 512 respectively;
a pair of numbers may be separated by
.L x
to indicate a product.
Multiple conversions may be specified in the style:
.LR "-conv ebcdic,ucase" .
.PP
.L Cbs\^
is used only if
.LR ascii\^ ,
.LR unblock\^ ,
.LR ebcdic\^ ,
.LR ibm\^ ,
or
.L block\^
conversion is specified.
In the first two cases,
.I n
characters are copied into the conversion buffer, any specified
character mapping is done,
trailing blanks are trimmed and new-line is added
before sending the line to the output.
In the latter three cases, characters are read into the
conversion buffer and blanks are added to make up an
output record of size
.IR n .
If
.L cbs\^
is unspecified or zero, the
.LR ascii\^ ,
.LR ebcdic\^ ,
and
.L ibm\^
options convert the character set without changing the block
structure of the input file; the
.L unblock\^
and
.L block\^
options become a simple file copy.
.SH SOURCE
.B \*9/src/cmd/dd.c
.SH "SEE ALSO"
.IR cp (1)
.SH DIAGNOSTICS
.I Dd
reports the number of full + partial input and output
blocks handled.
